// NEW RUNNABLE TERMINATED状态演示
public class ThreadTest {
    public static void main(String[] args) {
        Thread t = new Thread(()->{
            // 这个循环是确保start后，t获得RUNNABLE状态
            for (int i = 0; i < 1000; i++) {
                // 此处不能加sleep，否则当sleep时，是TIME_WAITING还是RUNNABLE无法确定
                try {
                    Thread.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        // start前，getState得到NEW状态
        System.out.println("start之前："+t.getState());
        t.start();
        // 在start后，getState得到RUNNABLE状态
        System.out.println("start之后，t调度执行时：" + t.getState());

        // 加sleep让t线程执行完，再getState，就可得到TERMINATED状态（使用t.join也行）
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("t结束后：" + t.getState());
    }
}
